package com.jse.util;

import java.util.Arrays;

/**
 * 打印小工具类
 * 
 * @author ly
 * 
 */
public class Print {
	/**
	 * 打印对象，然后输出一个换行符(最常用)
	 * 
	 * @param o
	 */
	public static void print(Object o) {
		synchronized (System.out) {
			printnb(o);
			print();
		}
	}

	/**
	 * 打印对象, 结尾没有换行符
	 * 
	 * @param o
	 */
	public static void printnb(Object o) {
		if (o instanceof Object[])
			System.out.print(Arrays.toString((Object[]) o));
		else if (o instanceof double[])
			System.out.print(Arrays.toString((double[]) o));
		else if (o instanceof float[])
			System.out.print(Arrays.toString((float[]) o));
		else if (o instanceof long[])
			System.out.print(Arrays.toString((long[]) o));
		else if (o instanceof int[])
			System.out.print(Arrays.toString((int[]) o));
		else if (o instanceof char[])
			System.out.print(Arrays.toString((char[]) o));
		else if (o instanceof short[])
			System.out.print(Arrays.toString((short[]) o));
		else if (o instanceof byte[])
			System.out.print(Arrays.toString((byte[]) o));
		else if (o instanceof boolean[])
			System.out.print(Arrays.toString((boolean[]) o));
		else
			System.out.print(o);
	}

	/**
	 * 打印一个换行符
	 */
	public static void print() {
		System.out.println();
	}

	/**
	 * 格式化输出
	 * 
	 * @param format
	 * @param args
	 */
	public static java.io.PrintStream printf(String format, Object... args) {
		return System.out.printf(format, args);
	}

	public static void main(String[] args) {
		print(new int[] { 101, 111, 225, 5556, 665, 55 });
		printf("%d + %d = %d", 1, 1, 1 + 1);
	}
}